home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 December / CHIPNET Aralık 1997.iso / linux / redhat / misc / src / install / perror.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-11  |  538 b   |  29 lines

  1. #include <errno.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. #include "perror.h"
  7.  
  8. char * perrorstr(char * msg) {
  9.     static char * err = NULL;
  10.     static int errsize = 0;
  11.     static int newsize;
  12.     int theerrno = errno;
  13.  
  14.     newsize = strlen(msg) + strlen(strerror(theerrno)) + 5;
  15.     if (!errsize) {
  16.     errsize = newsize;
  17.     err = malloc(errsize);
  18.     } else if (errsize < newsize) {
  19.     free(err);
  20.     errsize = newsize;
  21.     err = malloc(errsize);
  22.     } 
  23.  
  24.     sprintf(err, "%s: %s", msg, strerror(theerrno));
  25.  
  26.     return err;
  27. }
  28.  
  29.